# USB OTG ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- **USB On-The-Go**(USB OTG)是USB 2.0规格的补充标准,允许设备在USB外设模式与主机模式之间切换。Quectel Pi H1支持USB OTG功能,通过板载Type-C接口即可在主机模式下直接连接USB外设(如U盘、键盘、鼠标、网卡等),无需借助PC完成数据读取或控制操作。 本文档介绍如何通过USB OTG接口使用USB模拟网卡(RNDIS)功能,实现Quectel Pi H1与主机之间的网络连接及共享。 # 硬件接口 ```{image} images/image_SNaBbPs7RogwF6xwsr1ctz7QnTd.webp :width: 617px :height: 323px ``` # USB模拟网卡概述 USB模拟网卡(RNDIS)利用USB数据线在设备与主机之间建立一条虚拟以太网链路,无需额外的物理网卡即可实现网络通信。 Quectel Pi H1的USB OTG默认gadget配置已包含RNDIS网卡功能(同时绑定DIAG和ADB)。连接后,Quectel Pi H1侧会出现 *usb0* 网络接口。 建立连接后可用于: - 远程登录(SSH) - 文件传输(SCP / SFTP) - 网络共享(主机共享网络给设备,或设备共享网络给主机) - 调试服务访问 # 连接Linux主机 ## 基本连接配置 1. 使用数据线将Quectel Pi H1的 **Type-C** 口连接至Linux主机的 **USB** 口。 2. 在Quectel Pi H1上确认 *usb0* 接口存在,并启用配置IP: ```shell sudo ip link show usb0 sudo ip link set usb0 up sudo ip addr add 192.168.0.5/24 dev usb0 sudo ip addr show usb0 ``` 1. 在Linux端确认新增的USB RNDIS网卡名称(通常以 *enx* 开头),例如 *enx2a8b155b2e00*: ```shell ip link ``` ```{image} images/image_TXG4bc6JeowkAsxpwMScfToLnDf.webp :width: 824px :height: 550px ``` 1. 在Linux端为该网卡配置IP: ```shell sudo ip link set enx2a8b155b2e00 up sudo ip addr add 192.168.0.6/24 dev enx2a8b155b2e00 ``` > 1. 请将 *enx2a8b155b2e00* 替换为实际网卡名称。 2. 测试连通性: ```shell ping 192.168.0.5 ``` 1. 收到正常响应即表示RNDIS网卡连接建立成功。 ```{image} images/image_IiFGbm59PoV7wgx9DO8ctPM9nPf.webp :width: 824px :height: 550px ``` ## Linux共享网络给设备 当Linux主机已通过以太网或Wi-Fi连接互联网时,可将网络共享给Quectel Pi H1。 以下示例参数: | **角色** | **接口** | **IP地址** | | --- | --- | --- | | Linux外网接口 | enp11s0 | — | | Linux USB RNDIS网卡 | enx2a8b155b2e00 | 192.168.0.6 | | Quectel Pi H1 USB网卡 | usb0 | 192.168.0.5 | > Linux端外网接口可通过 *ip route get 8.8.8.8* 查询,输出中的 *dev* 字段即为实际上网接口。 在Linux端开启IPv4转发: ```shell sudo sysctl -w net.ipv4.ip_forward=1 ``` 在Linux端配置NAT转发: ```shell sudo iptables -t nat -A POSTROUTING -o enp11s0 -j MASQUERADE sudo iptables -A FORWARD -i enx2a8b155b2e00 -o enp11s0 -j ACCEPT sudo iptables -A FORWARD -i enp11s0 -o enx2a8b155b2e00 -m state --state RELATED,ESTABLISHED -j ACCEPT ``` > 请将 *enp11s0* 和 *enx2a8b155b2e00* 替换为实际网卡名称。 在Quectel Pi H1上添加默认路由: ```shell sudo ip route replace default via 192.168.0.6 dev usb0 ``` 在Quectel Pi H1上配置DNS: ```shell sudo sh -c 'printf "nameserver 8.8.8.8\n" > /etc/resolv.conf' ``` 在Quectel Pi H1上验证外网访问: ```shell ping 8.8.8.8 ping www.quectel.com ``` > 若能 *ping* 通公网IP但无法解析域名,请检查DNS配置。 ## 设备共享网络给Linux 当Quectel Pi H1已通过其他接口(如以太网、蜂窝网络)联网时,可将网络共享给Linux主机。 以下示例参数: | **角色** | **接口** | | --- | --- | | Quectel Pi H1上网接口 | eth0 | | Quectel Pi H1 USB网卡 | usb0 | | Linux USB RNDIS网卡 | enx2a8b155b2e00 | > Quectel Pi H1实际上网接口可通过 *ip route get 8.8.8.8* 查询。 在Quectel Pi H1上开启IPv4转发: ```shell sudo sysctl -w net.ipv4.ip_forward=1 ``` 在Quectel Pi H1上配置NAT转发: ```shell sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i usb0 -o eth0 -j ACCEPT sudo iptables -A FORWARD -i eth0 -o usb0 -m state --state RELATED,ESTABLISHED -j ACCEPT ``` 在Linux端将默认路由指向Quectel Pi H1: ```shell sudo ip route replace default via 192.168.0.5 dev enx2a8b155b2e00 ``` 在Linux端验证外网访问: ```shell ping 8.8.8.8 ping www.quectel.com ``` > 若Quectel Pi H1通过蜂窝网络或其他接口联网,请将 *eth0* 替换为实际上网接口。 # 连接Windows主机 ## 基础连接配置 1. 使用数据线将Quectel Pi H1的 **Type-C** 口连接至Windows主机的 **USB** 口。 2. 在Quectel Pi H1上确认 *usb0* 接口存在,并启用配置IP: ```shell sudo ip link show usb0 sudo ip link set usb0 up sudo ip addr add 192.168.7.1/24 dev usb0 sudo ip addr show usb0 ``` 3. 在Windows端确认新增的USB RNDIS网卡。 在设备管理器的网络适配器中可看到 *Remote NDIS Compatible Device*,在网络连接中会新增一个以太网连接。 ```{image} images/image_KjBDbbYqlo9egHxBwlEc3PQ7n6d.webp :width: 781px :height: 572px ``` ```{image} images/image_CSIVbNQrgofW9Bx6DAkcrVYsnVh.webp :width: 1125px :height: 634px ``` 4. 在Windows端配置USB网卡IP。 打开网络设置,找到新增的未识别网络,手动将IP配置为与Quectel Pi H1同网段的地址(如 *192.168.7.2*),保存。 ```{image} images/image_YZnubQJRKoAVjjxEuGmc5bqynGb.webp :width: 1113px :height: 599px ``` ```{image} images/image_BWWdbj6hMo9wtFxZYL6c9EPWn2f.webp :width: 1113px :height: 604px ``` ```{image} images/image_Ly4WbgVJwo9AXTxvo5McOi5Jn3b.webp :width: 1121px :height: 605px ``` 5. 测试连通性: ```shell ping 192.168.7.1 ``` 收到正常响应即表示RNDIS网卡连接建立成功。 ```{image} images/image_RX66bKHOqoIwC0xt9HqcdZzZnZK.webp :width: 979px :height: 512px ``` ## Windows共享网络给设备 当Windows主机已通过以太网或Wi-Fi连接互联网时,可通过Internet连接共享(ICS)功能将网络共享给Quectel Pi H1。 1. 打开网络连接页面:按 *Win + R*,输入 *ncpa.cpl* 后回车。 2. 开启Internet连接共享:右键当前可访问互联网的网卡(如WLAN或以太网),选择 **属性** → **共享** 页签,勾选 **允许其他网络用户通过此计算机的Internet连接来连接**。 ```{image} images/image_Gffsbrkawof5sOx0WiycPZfmnEb.webp :width: 435px :height: 639px ``` > 1. 开启共享后,Windows通常会自动将USB RNDIS网卡地址设置为 *192.168.137.1/24*。 ```{image} images/image_H2vHbcdjfo4VJsxboQhcGCAbnhd.webp :width: 1102px :height: 608px ``` 1. 在Quectel Pi H1上重新配置 *usb0* IP(需与Windows分配的网段匹配): ```shell sudo ip addr flush dev usb0 sudo ip link set usb0 up sudo ip addr add 192.168.137.2/24 dev usb0 sudo ip addr show usb0 ``` 1. 在Quectel Pi H1上添加默认路由: ```shell sudo ip route replace default via 192.168.137.1 dev usb0 ``` 1. 在Quectel Pi H1上配置DNS: ```shell sudo sh -c 'printf "nameserver 8.8.8.8\n" > /etc/resolv.conf' ``` 1. 在Quectel Pi H1上验证外网访问: ```shell ping 8.8.8.8 ping www.quectel.com ``` > 若能 *ping* 通公网IP但无法解析域名,请检查DNS配置。若Windows未将USB RNDIS网卡设置为 *192.168.137.1*,请以实际显示的IP为准,并确保Quectel Pi H1的 *usb0* 与其处于同一网段。 ## 设备共享网络给Windows 当Quectel Pi H1已通过其他接口联网时,可将网络共享给Windows主机。 > Quectel Pi H1实际上网接口可通过 *ip route get 8.8.8.8* 查询。 在Quectel Pi H1上开启IPv4转发: ```shell sudo sysctl -w net.ipv4.ip_forward=1 ``` 在Quectel Pi H1上配置NAT转发: ```shell sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i usb0 -o eth0 -j ACCEPT sudo iptables -A FORWARD -i eth0 -o usb0 -m state --state RELATED,ESTABLISHED -j ACCEPT ``` > 若提示没有iptables,可通过apt安装: > ```shell sudo apt update sudo apt install iptables ``` 在Windows端将网关设置为Quectel Pi H1的IP(如 *192.168.7.1*)。 ```{image} images/image_QUrTbnuVVo4XG5xQ7BUctgFinyd.webp :width: 1121px :height: 605px ``` 在Windows端验证外网访问(建议临时禁用其他网络连接以排除干扰): ```shell ping 8.8.8.8 ping www.quectel.com ``` ```{image} images/image_GhoUbIRXQoTf02x1ZjQcSzJrnOh.webp :width: 1125px :height: 634px ``` ```{image} images/image_OD7mbYEZwoESSZxyu2pc9DBLnPg.webp :width: 979px :height: 512px ``` > 若Quectel Pi H1通过蜂窝网络或其他接口联网,请将 *eth0* 替换为实际上网接口。 # 常见问题排查 | **现象** | **排查方法** | | --- | --- | | Quectel Pi H1无usb0接口 | 确认Type-C线缆支持数据传输;执行sudo qusb showpid检查USB组合模式是否包含RNDIS或NCM | | 主机端未出现新网卡 | 重新插拔线缆后查看dmesg \| tail -n 50或设备管理器(Windows),确认系统是否识别到USB Ethernet/RNDIS设备 | | 能ping通公网IP但无法解析域名 | 检查/etc/resolv.conf或系统DNS配置是否正确 | | 配置NAT后仍无法上网 | 确认默认路由指向对端USB网卡地址;执行iptables -t nat -L -n -v检查转发规则是否生效 |